﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace HS_Model.Character
{
    public class Monster : Character
    {
        /*------------------------------------------|ATRIBUTES|-----------------------------------------*/
        private char typeMonster;
        private int speed;          //se simulará por la cantidad de celdas que avanzará
        private int injuryDeath;    //Dagno por muerte
        private int damage;         //Dagno producido a un soldado
        private int moneyProvided;  //dinero recaudado por vencer a un monstrito


        /*--------------------------------------|SETTERS & GETTERS|-------------------------------------*/

        public char getTypeMonster()
        {
            return typeMonster;
        }
        public void setTypeMonster(char typeMonster)
        {
            this.typeMonster= typeMonster;
        }

        public int getSpeed()
        {
            return speed;
        }
        public void setSpeed(int speed)
        {
            this.speed = speed;
        }

        public int getInjuryDeath()
        {
            return injuryDeath;
        }
        public void setInjuryDeath(int injuryDeath)
        {
            this.injuryDeath = injuryDeath;
        }

        public int getDamage()
        {
            return damage;
        }
        public void setDamage(int damage)
        {
            this.damage = damage;
        }

        public int getMoneyProvided()
        {
            return moneyProvided;
        }
        public void setMoneyProvided(int moneyProvided)
        {
            this.moneyProvided = moneyProvided;
        }


        /*-------------------------------------------|OTHERS|-------------------------------------------*/
        void move()
        {
            //LO QUE DEBE PASARSE ES EL OBJETO MONSTRUO:
            //Coordenadas Abajo y Derecha POSITIVO; Arriba e Izquierda NEGATIVO.
            int x;
            //Avance del monstruo, según el tipo que tenga:
            x = this.getX() - getSpeed();
            this.setX(x);
        }

        /*------------------------------------------|BUILDERS|-------------------------------------------*/
        public Monster()
        {
            setLife(100);
            setAccuracy(0.8);
            setDamage(10);
            setMoneyProvided(30);
        }

        public Monster(char typeMonster, int x, int y)
        {
            setTypeMonster(typeMonster);
            setX(x);
            setY(y);
            if (typeMonster == '1')
            {
                setLife(100);
                setName("Droggs");
                setSpeed(2);    //avanza mucho más rápido que cualquiera, 2 celdas por turno.
                setAccuracy(0.8);
                setDamage(30);
                setMoneyProvided(50);
                setDescription("Robóticamente mutados, son ágiles y rabiosos, andan en grupo");
            }

            if (typeMonster == '2')
            {
                setLife(200);
                setName("Spyder");
                setSpeed(1);
                setAccuracy(0.9);
                setDamage(50);
                setMoneyProvided(100);
                setDescription("Robóticamente mutados, son de muy mal caracter y fuertes");
            }
        }

        /*-----------------------------------------|DESTROYER|-------------------------------------------*/
        ~Monster()
        {
            setLife(0);
            moneyProvided = 50;
        }
    }
}
